const Actions = require('./actions');

const DB = require('../../app/db');
// store数据的存储 和Action的监听，listenTo: 监听指定的listenable（对象集合）的变化，从而执行回调（这里的listenable可以是Action，也可以是Store）
module.exports = Reflux.createStore({
    //监听消息
    listenables: [Actions],
    //存储组件的状态数据3种形式
    data: {
        loaded: false,
        content: {},
        error: false
    },
//监听消息后的回调，处理数据（监听者）
    onFetchData: function(params, cb) {
        var t = this;
        //获取json数据，then成功，catch异常
        // params动态参数
        DB.SomeModuleAPI.getOfficeTime(params)
        .then(function(content) {
            t.data.loaded = true;
            t.data.content = content;            
            t.updateComponent();
            cb && cb(t.data);
        })
        .catch(function(error) {
             t.data.error = error;
            t.updateComponent();
            cb && cb(t.data);
        });
    },

    updateComponent: function() {
        // console.log ("data="+JSON.stringify(this.data));
        //同步发布Action消息给组件
        this.trigger(this.data);
    },

    getInitialState: function() {
        return this.data;
    }
});
